package br.requisiteworks.requisito.modelo.dao;

import java.util.List;

import br.requisiteworks.modelo.Projeto;
import br.requisiteworks.requisito.modelo.Requisito;
import br.requisiteworks.requisito.modelo.TipoRequisito;
import br.requisiteworks.util.persistencia.DaoComum;
import br.requisiteworks.util.persistencia.ResultadoVazio;

public interface RequisitoDao extends DaoComum<Requisito> {
	public Requisito select(int numero) throws ResultadoVazio;

	public List<Requisito> select(TipoRequisito tipo) throws ResultadoVazio;

	public List<Requisito> select(Projeto projeto) throws ResultadoVazio;

	/**
	 * Seleciona requisitos de um determinado projeto que sejam do tipo
	 * especificado.
	 * 
	 * @param projeto
	 *            O projeto cujos requisitos pretencem
	 * @param tipoRequisito
	 *            O Tipo de requisito cadastrado
	 * @throws ResultadoVazio
	 */
	public List<Requisito> select(Projeto projeto, TipoRequisito tipoRequisito)
			throws ResultadoVazio;
}
